﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace skhukb.Models
{
    public class 게시판Model : DB.게시판
    {
        public 게시판Model(DB.게시판 data)
        {
            this.ID = data.ID;
            this.제목 = data.제목;
        }
    }

    public class 게시글Model : DB.게시글 
    {
        public string 작성자 { get; set; }
        public string 분류 { get; set; }

        public 게시글Model()
        {
        }

        public 게시글Model(DB.게시글 게시글, bool 내용포함 = false)
        {
            copy(게시글, this, 내용포함);
            작성자 = 게시글.사용자.이름;
            분류 = 게시글.게시글분류.제목;
        }

        public DB.게시글 to게시글()
        {
            var 게시글 = new DB.게시글();
            copy(this, 게시글, true);
            return 게시글;
        }

        private static void copy(DB.게시글 from, DB.게시글 to, bool 내용포함 = true)
        {
            to.ID = from.ID;
            to.게시판ID = from.게시판ID;
            to.번호 = from.번호;
            to.게시글분류ID = from.게시글분류ID;
            to.제목 = from.제목;
            if (내용포함) to.내용 = from.내용;
            to.수정일 = from.수정일;
            to.작성자ID = from.작성자ID;
        }
    }

    public class 게시글분류Model : DB.게시글분류
    {
        public 게시글분류Model(int id, string 제목)
        {
            this.ID = id;
            this.제목 = 제목;
        }

        public 게시글분류Model(DB.게시글분류 data)
        {
            this.ID = data.ID;
            this.제목 = data.제목;
        }
    }

    public class 게시글검색유형Model
    {
        public int ID { get; set; }
        public string 제목 { get; set; }
    }

    public class BbsArticleListModel
    {
        static List<게시글검색유형Model> _목록 = new List<게시글검색유형Model> { 
            new 게시글검색유형Model { ID = BL.게시판.검색_제목, 제목 = "제목" }, 
            new 게시글검색유형Model { ID = BL.게시판.검색_제목내용, 제목 = "제목+내용" }, 
            new 게시글검색유형Model { ID = BL.게시판.검색_작성자, 제목 = "작성자" } 
        };

        public 게시판Model 게시판 { get; set; }
        public List<게시글Model> 게시글목록 { get; set; }
        public List<게시글분류Model> 게시글분류목록 { get; set; }
        public List<게시글검색유형Model> 게시글검색유형목록 { get { return _목록; } set { } }
        public PaginationModel 페이지정보 { get; set; }
        public int 게시글분류 { get; set; }
        public int 검색유형 { get; set; }
        public string 검색어 { get; set; }
    }

    public class BbsArticleEditModel
    {
        public 게시글Model 게시글 { get; set; }
        public List<게시글분류Model> 게시글분류목록 { get; set; }
    }

    public class BbsArticleDetailModel
    {
        public 게시판Model 게시판 { get; set; }
        public 게시글Model 게시글 { get; set; }
        public bool 수정권한 { get; set; }
    }

    public class BbsEditModel
    {
        public 게시판Model 게시판 { get; set; }
        public List<게시글분류Model> 게시글분류목록 { get; set; }
    }
    
}